草庐IT

PHP 按位枚举

全部标签

c# - ASP.net MVC 中枚举的下拉列表中的选定项

抱歉,如果这是一个骗局,我的搜索没有任何结果。我正在使用以下方法为枚举类型生成下拉列表(从此处提取:http://addinit.com/?q=node/54):publicstaticstringDropDownList(thisHtmlHelperhelper,stringname,Typetype,objectselected){if(!type.IsEnum)thrownewArgumentException("Typeisnotanenum.");if(selected!=null&&selected.GetType()!=type)thrownewArgumentExcep

c# - C# 中的按位 "~"运算符

考虑这个单元测试代码:[TestMethod]publicvoidRunNotTest(){//10101100=128+32+8+4=172byteb=172;//01010011=64+16+2+1=83Assert.AreEqual(83,(byte)~b);}这个测试通过了。但是,如果没有字节转换,它就会失败,因为“~”运算符返回-173的值。这是为什么? 最佳答案 对int的提升发生在byte上,因为没有为它们定义二进制补码。参见Unarynumericpromotions和Bitwisecomplementoperato

c# - Enum.GetNames() 导致带有负枚举常量的意外顺序

我有以下枚举定义(在C#中):publicenumELogLevel{General=-1,//Shouldonlybeusedindrop-downboxinMerliniaAdministratorlogsettingsAll=0,//Shouldnotbeusedasalevel,onlyasathreshold,effectivelysameasTraceTrace=1,Debug=2,Info=3,Warn=4,Error=5,Fatal=6,Off=7//Shouldnotbeusedasalevel,onlyasathreshold}现在,当我对这种类型执行Enum.Ge

C# - Web API - 将枚举序列化为带空格的字符串

我的问题很简单,但比其他有关将枚举类型序列化为字符串的问题更具体一些。考虑以下代码:usingNewtonsoft.Json;usingNewtonsoft.Json.Converters;publicenumMyEnum{TypeOne,TypeTwo,TypeThree}publicclassFoo{[JsonConverter(typeof(StringEnumConverter))]publicMyEnumTypes{get;set;}}当WebAPIController发送序列化的Foo对象时,它们可能看起来像这样:{"Type":"TypeTwo"}我的问题:是否可以将序列

c# - 通用字符串到枚举的转换

假设枚举:publicenumSysLogsAppTypes{None,MonitorService,MonitorTool};这里是一个将ToString()表示转换回enum的函数:privateSysLogsAppTypesStr2SysLogsAppTypes(stringstr){try{SysLogsAppTypesres=(SysLogsAppTypes)Enum.Parse(typeof(SysLogsAppTypes),str);if(!Enum.IsDefined(typeof(SysLogsAppTypes),res))returnSysLogsAppTypes.

c# - 添加枚举值会破坏二进制兼容性吗?

想象一下DLL中的这个枚举。publicenumColors{Red,Green}添加枚举值会破坏二进制兼容性吗?如果我要更改它,现有的EXE会损坏吗?publicenumColors{Red,Green,Blue}我看到了thisanswer,但它似乎解决了插入值的问题。如果我将值添加到仅结尾,可以吗? 最佳答案 不,这不会破坏二进制兼容性(因为:程序集仍会加载等),因为枚举基本上是整数文字常量。在中间插入值显然是一个非常危险的想法,但您已经排除了它。但是,它可能会导致您需要防范的许多其他问题:一些代码(特别是switch语句)可

c# - 如何将枚举值添加到列表

我有以下枚举:publicenumSymbolWejsciowy{K1,K2,K3,K4,K5,K6,K7,K8}我想使用这个枚举的值创建一个列表:publicListsymbol;我尝试了几种不同的方法来将枚举值添加到列表中:SymbolWejsciowysymbol;symbol.Add(symbol=SymbolWejsciowy.K1);和symbol.Add(SymbolWejsciowy.K1);但是,我总是遇到以下异常:Objectreferencenotsettoaninstanceofanobject.我怎样才能正确地做到这一点? 最佳答案

C# 从整数反序列化枚举

是否可以在C#中从int反序列化枚举。例如如果我有以下类(class):classEmployee{publicstringName{get;set;}publicintEmployeeTypeID{get;set;}}我可以很容易地从XML创建这个JoeBloggs1使用这样的东西:Employeeemployee=(Employee)newXmlSerializer(typeof(Employee)).Deserialize(XmlReader);只需很少的工作,这让我可以使用一个通用服务,通过将选择命令、连接字符串和类型输入到并检索对象数组,我可以将其用于所有数据库对象,而无需进

c# - 转换器显示枚举的描述,并在从 wpf 的组合框中选择项目时转换回枚举值

我正在使用枚举在我的组合框中登记值。我想编写一个转换器来显示所选枚举值的“描述”。并且,当被选中时,它将返回枚举值。大多数在线转换器都没有实现ConvertBack()方法(这就是我在这里发帖的原因)。 最佳答案 这里是ConvertBack方法:publicobjectConvertBack(objectvalue,TypetargetType,objectparameter,System.Globalization.CultureInfoculture){returnvalue;}完整转换器代码:publicclassEnumC

c# - 静态变量应该用枚举代替吗?

所以我在查看一些已checkin的代码时感到很困惑://Amountofdaysbeforecancellationcan'tbedoneenumCancellation{Limit=2};询问检查它的人,他认为使用枚举而不是静态变量要好得多,比这更好:privatestaticintCANCELLATION_LIMIT=2;于是我们开始争论。我的论点是他使用枚举作为存储值的方式(如果有两个枚举符号具有相同的值,它就会中断)。他认为在类中使用静态变量是一种反模式。我的问题是,对于这两种情况应该使用什么最佳实践? 最佳答案 返回“它在